package net.aetherial.context.grounding.classifiers;

import java.util.*;

import net.aetherial.context.grounding.annotators.Annotator;

/**
 * Abstract class used for constructing specific classifiers. Classifiers are unused in the current version of the system.
 */

public abstract class Classifier 
{
	/**
	 * Generates a label for a given conversational unit.
	 * 
	 * @param contribution		Conversational turn
	 * @return					Classification label
	 */
	
	public abstract String classify (String contribution);

	/**
	 * Generates a classification using the default annotation (original) layer.
	 * 
	 * @param layers	Collection of annotated versions of the conversational unit.
	 * @return			Classification label.
	 */
	
	public String classify (Map<String, String> layers)
	{
		String layer = layers.get (Annotator.DEFAULT_LAYER);
		
		return this.classify (layer);
	}

	/**
	 * Resets the classifier for new turns.
	 */
	
	public void reset () 
	{

	}
}
